<?php

namespace app\admin\controller;

use think\Controller;
use think\Request;
use think\Db;

class User extends Admincontroller
{
    /**
     * 显示资源列表
     *
     * @return \think\Response
     */
    public function index()
    {
        $list=Db::table('xo_admin_users')->field('pwd',true)->select();
        return view('index',['list'=>$list]);
    }

    /**
     * 显示创建资源表单页.
     *
     * @return \think\Response
     */
    public function create()
    {
        return view('index');
    }

    /**
     * 保存新建的资源
     *
     * @param  \think\Request  $request
     * @return \think\Response
     */
    public function save(Request $request)
    {
        $data=$request->post();
        $id=$data['id'];
        $res=[
            'uid'=> $data['id'],
            'name'=> $data['role'],
        ];

        $list=DB::table('xo_admin_role')->field('name')->where(['uid'=>$id])->find();
        $name=$list['name'];

        if($name==$res['name']){
            $this->error('该用户已用该权限',url('user/user/user'));
        }

        $result=DB::table('xo_admin_role')->data($res)->insert();
        if($result){
            $this->success('添加权限成功',url('user/user/user'));
        }else{
            $this->error('添加失败',url('user/user/user'));
        }
    }

    /**
     * 显示指定的资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function read($id)
    {

        if(!Request::instance()->isAjax()){
            return $this->error('非法请求',url('admin/user/user'));
        }
        $res=DB::table('xo_admin_users')->field('pwd,create_time,loginout_time',true)->find($id);
        if($res===null){
            $data['status']=false;
            $data['title']='查无数据';
            $data['info']='查无数据,请重试';
        }else{
            $data['status']=true;
            $data['title']='用户['.$res['name'].']的信息';
            $data['info']=$res;
        }
        return json($data);
    }



    /**
     * 显示编辑资源表单页.
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function edit($id)
    {
        $list=DB::table('xo_admin_users')->field('id,name,pwd,status,tel')->find($id);
        return view('user/edit',['list'=>$list]);
    }

    /**
     * 保存更新的资源
     *
     * @param  \think\Request  $request
     * @param  int  $id
     * @return \think\Response
     */
    public function update( $id)
    {
        $data = input('put.');
        $data['pwd']=md5($data['pwd']);
        if ((in_array("on",$data))) {
            $data['status']='1';
        }else{
            $data['status']='0';
        }
        unset($data['_method']);
        $list=DB::table('xo_admin_users')->field('name,pwd,status,tel')->where(['id'=>$id])->find();
        // 取2个交集
        // 若为空则没改 return
        $p = array_diff($data,$list);
        if (empty($p)) {
            return $this->error('什么也没改吗?....');
        }

        $res = Db::table('xo_admin_users')->where(['id'=>$id])->update($p);
        if ($res) {
            return $this->success('更新成功',url('/u'));
        }else{
            return $this->error('更新失败,请稍后再试');
        }
    }


    /**
     * 添加用户资源表单页.
     *
     * @return \think\Response
     */
    public function add()
    {
        return view('user/add');
    }


    
    /**
     * 删除指定资源
     *
     * @param  int  $id
     * @return \think\Response
     */
    public function delete($id)
    {
        $res=DB::table('xo_admin_users')->delete($id);
        if($res>0){
            $rrr=Db::table('xo_admin_users_role')->where(['uid'=>$id])->delete();
            if($rrr>0){
                $data['status']=true;
                $data['id']=$id;
                $data['info']='删除'.$id.'用户成功';
            }else{
                $data['status']=false;
                $data['id']=$id;
                $data['info']='删除'.$id.'用户失败';
            }
        }else{
            $data['status']=false;
            $data['id']=$id;
            $data['info']='删除'.$id.'用户失败';
        }
        return json($data);
    }

    /**
     * 执行添加用户资源表单页.
     *
     * @return \think\Response
     */
    public function doadd()
    {
        //开启事务
        Db::startTrans();
        // 进行相关的业务逻辑操作
        $data = input('post.');
        // var_dump($data);die;
        // if (empty($data['tel'])) {
        //     $data['tel'] = 
        // }
        $data['id']='';
        $data['pass']= md5($data['pass']);
        $data['create_time'] = date('Y-m-d H:i:s');
        $data['create_time'] = date('Y-m-d H:i:s');
        $data['modify_time'] = date('Y-m-d H:i:s');
        // var_dump($data);
        $uid=DB::table('xo_admin_users')->insertGetId($data);
        $p['uid'] = $uid;
        $p['rid'] = 15;
        $p['id'] = '';
        $res = DB::table('xo_admin_users_role')->insert($p);
        if ($res){
            // 提交事务
            Db::commit();
            return $this->success('添加成功',url('/user'));
        }else{
            // 事务回滚
            Db::rollback(); 
            return $this->error('添加失败');
        }
    }

    public function check()
    {
        // echo 11;
        $name = input('get.');
        $name=$name['name'];
        $result = Db::table('xo_admin_users')->where('name',$name)->select();
        if ($result) {
            return 1; // JSON 数据
        }else{
            return 0; // JSON 数据
        }
    }
}
